//DevNETCoder
//CopyRight By DevNET Group
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using CuoiHoi.Entities;
using CuoiHoi.DataAccess;

namespace CuoiHoi.Business
{
    public class BNhanVien
    {
//-----------------------------------------------------------//
        public static DataTable SelectAll()
        {
            DataTable all = SqlHelper.ExecuteData(CommandType.StoredProcedure, "NhanVien_SelectAll", null);
            return all;
        }
        public static DataTable SelectTop(int Top)
        {
            SqlParameter[] pr = new SqlParameter[1];
            pr[0] = new SqlParameter(@"Top", Top);
            DataTable all = SqlHelper.ExecuteData(CommandType.StoredProcedure, "NhanVien_SelectTop", pr);
            return all;
        }
//-----------------------------------------------------------//
        public static void Insert(ENhanVien ONhanVien)
        {
            SqlParameter[] pr = new SqlParameter[6];
            pr[0] = new SqlParameter(@"TenNhanVien", ONhanVien.TenNhanVien);
            pr[1] = new SqlParameter(@"SoDienThoai", ONhanVien.SoDienThoai);
            pr[2] = new SqlParameter(@"AnhDaiDien", ONhanVien.AnhDaiDien);
            pr[3] = new SqlParameter(@"idChucVu", ONhanVien.idChucVu);
            pr[4] = new SqlParameter(@"TenDangNhap", ONhanVien.TenDangNhap);
            pr[5] = new SqlParameter(@"MatKhau", ONhanVien.MatKhau);
            SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure,"NhanVien_Insert", pr);
        }
//-----------------------------------------------------------//
        public static void Update(ENhanVien ONhanVien)
        {
            SqlParameter[] pr = new SqlParameter[5];
            pr[0] = new SqlParameter(@"idNhanVien", ONhanVien.idNhanVien);
            pr[1] = new SqlParameter(@"TenNhanVien", ONhanVien.TenNhanVien);
            pr[2] = new SqlParameter(@"SoDienThoai", ONhanVien.SoDienThoai);
            pr[3] = new SqlParameter(@"AnhDaiDien", ONhanVien.AnhDaiDien);
            pr[4] = new SqlParameter(@"idChucVu", ONhanVien.idChucVu);
            SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure,"NhanVien_Update", pr);
        }

        public static void ADUpdate(ENhanVien ONhanVien)
        {
            SqlParameter[] pr = new SqlParameter[4];
            pr[0] = new SqlParameter(@"idNhanVien", ONhanVien.idNhanVien);
            pr[1] = new SqlParameter(@"TenNhanVien", ONhanVien.TenNhanVien);
            pr[2] = new SqlParameter(@"SoDienThoai", ONhanVien.SoDienThoai);
            pr[3] = new SqlParameter(@"idChucVu", ONhanVien.idChucVu);
            SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "NhanVien_AdUpdate", pr);
        }

        public static void UpdateMatKhau(ENhanVien ONhanVien)
        {
            SqlParameter[] pr = new SqlParameter[2];
            pr[0] = new SqlParameter(@"idNhanVien", ONhanVien.idNhanVien);
            pr[1] = new SqlParameter(@"MatKhau", ONhanVien.MatKhau);
            SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "NhanVien_UpdateMatKhau", pr);
        }

        public static void UpdateThongTin(ENhanVien ONhanVien)
        {
            SqlParameter[] pr = new SqlParameter[4];
            pr[0] = new SqlParameter(@"TenNhanVien", ONhanVien.TenNhanVien);
            pr[1] = new SqlParameter(@"SoDienThoai", ONhanVien.SoDienThoai);
            pr[2] = new SqlParameter(@"AnhDaiDien", ONhanVien.AnhDaiDien);
            pr[3] = new SqlParameter(@"idNhanVien", ONhanVien.idNhanVien);
            SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "NhanVien_UpdateThongTin", pr);
        }
//-----------------------------------------------------------//
        public static void Delete(int idNhanVien)
        {
            SqlParameter[] pr = new SqlParameter[1];
            pr[0] = new SqlParameter(@"idNhanVien",idNhanVien);
            SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "NhanVien_Delete", pr);
        }
//-----------------------------------------------------------//
        public static ENhanVien SelectByID(int idNhanVien)
        {
            ENhanVien ONhanVien = new ENhanVien();
            SqlParameter[] pr = new SqlParameter[1];
            pr[0] = new SqlParameter(@"idNhanVien",idNhanVien);
            IDataReader idr = SqlHelper.ExecuteReader(CommandType.StoredProcedure,"NhanVien_SelectByID", pr);
            if (idr.Read())
              ONhanVien = GetOneNhanVien(idr);
            idr.Close();
            idr.Dispose();
            return ONhanVien;
        }
        public static ENhanVien DangNhap(string TenDN,string MatKhau)
        {
            ENhanVien ONhanVien = new ENhanVien();
            SqlParameter[] pr = new SqlParameter[2];

            pr[0] = new SqlParameter(@"TenDN", TenDN);
            pr[1] = new SqlParameter(@"MatKhau", MatKhau);
            IDataReader idr = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "NhanVien_DangNhap", pr);
            if (idr.Read())
                ONhanVien = GetOneNhanVien(idr);
            idr.Close();
            idr.Dispose();
            return ONhanVien;
        }
//-----------------------------------------------------------//
        private static ENhanVien GetOneNhanVien(IDataReader idr)
       {
            ENhanVien ONhanVien = new ENhanVien();
                if (idr["idNhanVien"] != DBNull.Value)
                    ONhanVien.idNhanVien = (int)idr["idNhanVien"];
                if (idr["TenNhanVien"] != DBNull.Value)
                    ONhanVien.TenNhanVien = (string)idr["TenNhanVien"];
                if (idr["SoDienThoai"] != DBNull.Value)
                    ONhanVien.SoDienThoai = (string)idr["SoDienThoai"];
                if (idr["AnhDaiDien"] != DBNull.Value)
                    ONhanVien.AnhDaiDien = (string)idr["AnhDaiDien"];
                if (idr["idChucVu"] != DBNull.Value)
                    ONhanVien.idChucVu = (int)idr["idChucVu"];
                if (idr["TenDangNhap"] != DBNull.Value)
                    ONhanVien.TenDangNhap = (string)idr["TenDangNhap"];
                if (idr["MatKhau"] != DBNull.Value)
                    ONhanVien.MatKhau = (string)idr["MatKhau"];
            return ONhanVien;
       }
//-----------------------------------------------------------//
        public static bool TestByID(int idNhanVien)
        {
            SqlParameter[] pr = new SqlParameter[2];
            pr[0] = new SqlParameter(@"idNhanVien",idNhanVien);
            pr[1] = new SqlParameter(@"TestID",SqlDbType.Bit);
            pr[1].Direction = ParameterDirection.Output;
            SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure,"NhanVien_TestByID", pr);
            return Convert.ToBoolean(pr[1].Value);
        }
//-----------------------------------------------------------//
        public static List<ENhanVien> ListAll()
        {
            List<ENhanVien> list = new List<ENhanVien>();
            IDataReader idr = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "NhanVien_SelectAll", null);
            while (idr.Read())
              list.Add(GetOneNhanVien(idr));
            if (idr.IsClosed == false)
            {
               idr.Close();
               idr.Dispose();
            }
            return list;
        }

        public static List<ENhanVien> ListTop(int Top)
        {
            SqlParameter[] pr = new SqlParameter[1];
            pr[0] = new SqlParameter(@"Top", Top);
            List<ENhanVien> list = new List<ENhanVien>();
            IDataReader idr = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "NhanVien_SelectAll", pr);
            while (idr.Read())
              list.Add(GetOneNhanVien(idr));
            if (idr.IsClosed == false)
            {
               idr.Close();
               idr.Dispose();
            }
            return list;
        }
    }
 
}